package com.chen.dome2recursion;

import java.io.File;

public class FileSeacher {
    public static void main(String[] args) {
        //目标：完成文件搜索 找到D盘中的idea64.exe
        //1.定义一个目录
        try {
            File dir=new File("D:/");
            findFile(dir,"Cursor");
        } catch (Exception e) {
            e.addSuppressed(new Exception("路径不存在"));
        }
    }

    /**
     *
     * @param dir 搜索路径
     * @param name 文件名
     * @return
     * @throws Exception
     */
    public static void findFile(File dir,String name) throws Exception{
        //2.判断路径是否为文件夹
        if(!dir.exists()||!dir.isDirectory()||dir.isFile()) {
            return;
        }
        //3.获取该目录下所有一级文件对象

        File[] files=dir.listFiles();
        //判断是否存在一级文件
        if(files!=null&&files.length>0) {


            for (File f : files) {
                //4.判断是否为文件
                if (f.isFile()) {
                    //5.判断文件名是否相同
//                    if (f.getName().equals(name)) {//精确查询
                        if(f.getName().contains(name)){//模糊查询
                        System.out.println("找到目标文件："+f.getAbsolutePath());
//                        Runtime r=Runtime.getRuntime();运行软件
//                        r.exec(f.getAbsolutePath());
                    }
                } else {
                    //6.如果文件夹，递归调用
                    findFile(f, name);
                }
            }
        }
    }
}
